package cn.com.huzo.model.entities.master;

import huzofw.model.entities.BaseEntity;
import huzofw.model.entities.IAggregateRoot;
import java.io.Serializable;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;

/**
 * 产品实体类
 *
 * @author 吴旭
 */
public class ProductEntity extends BaseEntity implements Serializable, IAggregateRoot {

    private static final long serialVersionUID = 8875487390852970514L;

    private Long ProductId;
    private Long CatalogueId;          // 所属目录
    private String CatalogueName;
    private Long EnterpriseId;         // 所属贸易公司
    private String EnterpriseName;
    private String ContractNo;         // 合同号
    private String StyleNo;
    private String ProductName;
    private Long ProductTypeId;        // 品类
    private String ProductTypeName;
    private String DesignNo;           // 设计号
    private String SerialNo;           // 系列号
    private String Gender;             // 性别
    private String Barcode;
    private String Brand;
    private Double CostPrice;          // 成本价
    private Double SalePrice;          // 销售价
    private Long CustomerId;           // 客户
    private String CustomerName;
    private Long SettlementModeId;     // 该客户的结算方式
    private String SettlementModeName;
    private String MainMaterial;       // 主要用料
    private String SuitFlag;           // 套装标记
    private Short SuitComponetOrder;   // 该款在套装中的组合顺序
    private String Years;              // 年代
    private Long SeasonId;             // 季节
    private String SeasonName;
    private Long UomId;                // 单位
    private String UomName;
    private String Pattern;            // 版型
    private Long EndUserId;            // 终端客户
    private String EndUserName;
    private String Description;

    public Long getProductId() {
        return ProductId;
    }

    public void setProductId(Long ProductId) {
        this.ProductId = ProductId;
    }

    public Long getCatalogueId() {
        return CatalogueId;
    }

    public void setCatalogueId(Long CatalogueId) {
        this.CatalogueId = CatalogueId;
    }

    public String getCatalogueName() {
        return CatalogueName;
    }

    public void setCatalogueName(String CatalogueName) {
        this.CatalogueName = CatalogueName;
    }

    public Long getEnterpriseId() {
        return EnterpriseId;
    }

    public void setEnterpriseId(Long EnterpriseId) {
        this.EnterpriseId = EnterpriseId;
    }

    public String getEnterpriseName() {
        return EnterpriseName;
    }

    public void setEnterpriseName(String EnterpriseName) {
        this.EnterpriseName = EnterpriseName;
    }

    public String getContractNo() {
        return ContractNo;
    }

    public void setContractNo(String ContractNo) {
        this.ContractNo = ContractNo;
    }

    public String getStyleNo() {
        return StyleNo;
    }

    public void setStyleNo(String StyleNo) {
        this.StyleNo = StyleNo;
    }

    public String getProductName() {
        return ProductName;
    }

    public void setProductName(String ProductName) {
        this.ProductName = ProductName;
    }

    public Long getProductTypeId() {
        return ProductTypeId;
    }

    public void setProductTypeId(Long ProductTypeId) {
        this.ProductTypeId = ProductTypeId;
    }

    public String getProductTypeName() {
        return ProductTypeName;
    }

    public void setProductTypeName(String ProductTypeName) {
        this.ProductTypeName = ProductTypeName;
    }

    public String getDesignNo() {
        return DesignNo;
    }

    public void setDesignNo(String DesignNo) {
        this.DesignNo = DesignNo;
    }

    public String getSerialNo() {
        return SerialNo;
    }

    public void setSerialNo(String SerialNo) {
        this.SerialNo = SerialNo;
    }

    public String getGender() {
        return Gender;
    }

    public void setGender(String Gender) {
        this.Gender = Gender;
    }

    public String getBarcode() {
        return Barcode;
    }

    public void setBarcode(String Barcode) {
        this.Barcode = Barcode;
    }

    public String getBrand() {
        return Brand;
    }

    public void setBrand(String Brand) {
        this.Brand = Brand;
    }

    public Double getCostPrice() {
        return CostPrice;
    }

    public void setCostPrice(Double CostPrice) {
        this.CostPrice = CostPrice;
    }

    public Double getSalePrice() {
        return SalePrice;
    }

    public void setSalePrice(Double SalePrice) {
        this.SalePrice = SalePrice;
    }

    public Long getCustomerId() {
        return CustomerId;
    }

    public void setCustomerId(Long CustomerId) {
        this.CustomerId = CustomerId;
    }

    public String getCustomerName() {
        return CustomerName;
    }

    public void setCustomerName(String CustomerName) {
        this.CustomerName = CustomerName;
    }

    public Long getSettlementModeId() {
        return SettlementModeId;
    }

    public void setSettlementModeId(Long SettlementModeId) {
        this.SettlementModeId = SettlementModeId;
    }

    public String getSettlementModeName() {
        return SettlementModeName;
    }

    public void setSettlementModeName(String SettlementModeName) {
        this.SettlementModeName = SettlementModeName;
    }

    public String getMainMaterial() {
        return MainMaterial;
    }

    public void setMainMaterial(String MainMaterial) {
        this.MainMaterial = MainMaterial;
    }

    public String getSuitFlag() {
        return SuitFlag;
    }

    public void setSuitFlag(String SuitFlag) {
        this.SuitFlag = SuitFlag;
    }

    public Short getSuitComponetOrder() {
        return SuitComponetOrder;
    }

    public void setSuitComponetOrder(Short SuitComponetOrder) {
        this.SuitComponetOrder = SuitComponetOrder;
    }

    public String getYears() {
        return Years;
    }

    public void setYears(String Years) {
        this.Years = Years;
    }

    public Long getSeasonId() {
        return SeasonId;
    }

    public void setSeasonId(Long SeasonId) {
        this.SeasonId = SeasonId;
    }

    public String getSeasonName() {
        return SeasonName;
    }

    public void setSeasonName(String SeasonName) {
        this.SeasonName = SeasonName;
    }

    public Long getUomId() {
        return UomId;
    }

    public void setUomId(Long UomId) {
        this.UomId = UomId;
    }

    public String getUomName() {
        return UomName;
    }

    public void setUomName(String UomName) {
        this.UomName = UomName;
    }

    public String getPattern() {
        return Pattern;
    }

    public void setPattern(String Pattern) {
        this.Pattern = Pattern;
    }

    public Long getEndUserId() {
        return EndUserId;
    }

    public void setEndUserId(Long EndUserId) {
        this.EndUserId = EndUserId;
    }

    public String getEndUserName() {
        return EndUserName;
    }

    public void setEndUserName(String EndUserName) {
        this.EndUserName = EndUserName;
    }

    public String getDescription() {
        return Description;
    }

    public void setDescription(String Description) {
        this.Description = Description;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (!(o instanceof ProductEntity)) {
            return false;
        }

        final ProductEntity that = (ProductEntity) o;

        return new EqualsBuilder()
                .append(this.getProductId(), that.getProductId())
                .isEquals();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public int hashCode() {
        int result = 17;
        result = 31 * result + this.getProductId().hashCode();

        return result;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }
}
